package com.nt.oam.service;

import java.util.List;

import com.nt.oam.domain.AntSoftwareAsset;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nt.oam.vo.asset.SoftwareAssetVo;

/**
 * 软件资产Service接口
 *
 * @author JZFeng
 * @date 2025-02-05
 */
public interface IAntSoftwareAssetService extends IService<AntSoftwareAsset> {
    /**
     * 查询软件资产
     *
     * @param softwareAssetId 软件资产主键
     * @return 软件资产
     */
    public AntSoftwareAsset selectAntSoftwareAssetBySoftwareAssetId(Long softwareAssetId);

    /**
     * 查询软件资产列表
     *
     * @param antSoftwareAsset 软件资产
     * @return 软件资产集合
     */
    public List<AntSoftwareAsset> selectAntSoftwareAssetList(AntSoftwareAsset antSoftwareAsset);

    /**
     * 新增软件资产
     *
     * @param antSoftwareAsset 软件资产
     * @return 结果
     */
    public int insertAntSoftwareAsset(AntSoftwareAsset antSoftwareAsset);

    /**
     * 修改软件资产
     *
     * @param antSoftwareAsset 软件资产
     * @return 结果
     */
    public int updateAntSoftwareAsset(AntSoftwareAsset antSoftwareAsset);

    /**
     * 批量删除软件资产
     *
     * @param softwareAssetIds 需要删除的软件资产主键集合
     * @return 结果
     */
    public int deleteAntSoftwareAssetBySoftwareAssetIds(Long[] softwareAssetIds);

    /**
     * 删除软件资产信息
     *
     * @param softwareAssetId 软件资产主键
     * @return 结果
     */
    public int deleteAntSoftwareAssetBySoftwareAssetId(Long softwareAssetId);


    /**
     * 查询软件资产详情信息
     *
     * @param softwareAssetId 软件资产主键
     * @return 软件资产
     */
    public SoftwareAssetVo selectSoftwareAsset(Long softwareAssetId);

    /**
     * 通过项目id查询软件资产 ----接口
     *
     * @return 软件资产
     */
    public List<SoftwareAssetVo> selectByProjectIdSoftwareAsset(Long projectId);
    /**
     * 通过医院id查询软件资产 ----接口
     *
     * @return 软件资产
     */
    public List<SoftwareAssetVo> selectByHospitalIdSoftwareAsset(Long hospitalId);

    /**
     * 查询软件资产详情信息-----系统
     *
     * @return 软件资产
     */
    public SoftwareAssetVo selectByProjectIdSoftwareAssetSystem(Long projectId);

    /**
     *  查询是否在修改
     */
    public int selectSoftwareModify(Long softwareAssetId);

    /**
     * 重新设置修改状态
     */
    public int updateSoftwareModify(Long softwareAssetId,Integer isModify);
}
